-- 获取限流的key
local key = KEYS[1]
-- 获取限流大小
local count = tonumber(ARGV[1])
-- 获取时间窗口
local time = tonumber(ARGV[2])

-- 获取当前流量大小
local current = redis.call('get', key)
if current and tonumber(current) > count then
    -- 超出限流大小
    return tonumber(current)
end

-- 没有达到限流大小
current = redis.call('incr', key)
if tonumber(current) == 1 then
    -- 从第一次调用开始限流，设置过期时间
    redis.call('expire', key, time)
end

return tonumber(current)